Smart environments include homes, apartments, workplaces, and other types of spaces that are equipped with any of a variety of types of sensors, controllers, and a computer-driven decision making process. Such smart environments enable ubiquitous computing applications including, for example, applications to support medical monitoring, energy efficiency, assistance for disabled individuals, monitoring of aging individuals, or any of a wide range of medical, social, or ecological issues. The types of sensors that may be employed to establish a smart environment may include, for example, wearable sensors that are attached to a particular user, cameras, microphones, or less obtrusive sensors (e.g., motion sensors, light sensors, etc.) that are placed at various locations within the environment. If data collected through sensors in a smart environment can be used to detect and identify various types of activities that individual users are performing, this information can be used to monitor individuals or may be used to provide context-aware services to improve energy efficiency, safety, and so on.
Before sensor data can be used to identify specific activities, a computer system supporting a smart environment must become aware of relationships among various types of sensor data and specific activities. Because the floor plan, layout of sensors, number of residents, type of residents, and other factors can vary significantly from one smart environment to another, setup of a smart environment has typically included a time-intensive learning process in which data is collected from the new smart environment, and, for example, data collected from sensors is manually labeled, to enable a computing system associated with the new smart environment to learn relationships between sensor readings and specific activities. This learning process represents an excessive time investment and redundant computational effort, which has made widespread establishment of new smart environments prohibitive.